#include <iostream>


//仿函数  用类的对象来模拟函数调用  小括号的重载
class Test
{
public:
    Test(int count):count(count){}
    bool operator()(int a,int b)
    {
        return a > b && a > count;
    }
private:
    int count;
};

void func(int a,int b,Test&t)
{
    if(t(a,b) == true)
    {
        std::cout<<"大于!"<<std::endl;
    }
    else
    {
        std::cout<<"小于!"<<std::endl;
    }
}

int main()
{   
//    Test t(9);
//    func(10,11,t);
    //[]: 捕获列表:捕获上下文的变量 值捕获 引用捕获
    //(): 参数列表
    //{}: 函数主体
    
    const char *s = "helloworld";
    int b = 11;
    auto f = [s,&b](int a)
    {
        std::cout<<b<<" "<<a<<std::endl;
    };
    f(10);
    return 0;
}